<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Event Structures</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GDK参考手册">
<link rel="up" href="reference.html" title="API参考">
<link rel="prev" href="gdk-Events.html" title="Events">
<link rel="next" href="gdk-Keyboard-Handling.html" title="Key Values">
<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="gdk-Events.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GDK参考手册</th>
<td><a accesskey="n" href="gdk-Keyboard-Handling.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gdk-Event-Structures.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#gdk-Event-Structures.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry">
<a name="gdk-Event-Structures"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gdk-Event-Structures.top_of_page"></a>Event Structures</span></h2>
<p>Event Structures — Data structures specific to each type of event</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="gdk-Event-Structures.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;gdk/gdk.h&gt;

union               <a class="link" href="gdk-Event-Structures.html#GdkEvent" title="union GdkEvent">GdkEvent</a>;

struct              <a class="link" href="gdk-Event-Structures.html#GdkEventAny" title="struct GdkEventAny">GdkEventAny</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventKey" title="struct GdkEventKey">GdkEventKey</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventButton" title="struct GdkEventButton">GdkEventButton</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventScroll" title="struct GdkEventScroll">GdkEventScroll</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventMotion" title="struct GdkEventMotion">GdkEventMotion</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventExpose" title="struct GdkEventExpose">GdkEventExpose</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventVisibility" title="struct GdkEventVisibility">GdkEventVisibility</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventCrossing" title="struct GdkEventCrossing">GdkEventCrossing</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventFocus" title="struct GdkEventFocus">GdkEventFocus</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventConfigure" title="struct GdkEventConfigure">GdkEventConfigure</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventProperty" title="struct GdkEventProperty">GdkEventProperty</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventSelection" title="struct GdkEventSelection">GdkEventSelection</a>;
typedef             <a class="link" href="gdk-Event-Structures.html#GdkNativeWindow" title="GdkNativeWindow">GdkNativeWindow</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventDND" title="struct GdkEventDND">GdkEventDND</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventProximity" title="struct GdkEventProximity">GdkEventProximity</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventClient" title="struct GdkEventClient">GdkEventClient</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventNoExpose" title="struct GdkEventNoExpose">GdkEventNoExpose</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventWindowState" title="struct GdkEventWindowState">GdkEventWindowState</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventSetting" title="struct GdkEventSetting">GdkEventSetting</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventOwnerChange" title="struct GdkEventOwnerChange">GdkEventOwnerChange</a>;
struct              <a class="link" href="gdk-Event-Structures.html#GdkEventGrabBroken" title="struct GdkEventGrabBroken">GdkEventGrabBroken</a>;

enum                <a class="link" href="gdk-Event-Structures.html#GdkScrollDirection" title="enum GdkScrollDirection">GdkScrollDirection</a>;
enum                <a class="link" href="gdk-Event-Structures.html#GdkVisibilityState" title="enum GdkVisibilityState">GdkVisibilityState</a>;
enum                <a class="link" href="gdk-Event-Structures.html#GdkCrossingMode" title="enum GdkCrossingMode">GdkCrossingMode</a>;
enum                <a class="link" href="gdk-Event-Structures.html#GdkNotifyType" title="enum GdkNotifyType">GdkNotifyType</a>;
enum                <a class="link" href="gdk-Event-Structures.html#GdkPropertyState" title="enum GdkPropertyState">GdkPropertyState</a>;
enum                <a class="link" href="gdk-Event-Structures.html#GdkWindowState" title="enum GdkWindowState">GdkWindowState</a>;
enum                <a class="link" href="gdk-Event-Structures.html#GdkSettingAction" title="enum GdkSettingAction">GdkSettingAction</a>;
enum                <a class="link" href="gdk-Event-Structures.html#GdkOwnerChange" title="enum GdkOwnerChange">GdkOwnerChange</a>;
</pre>
</div>
<div class="refsect1">
<a name="gdk-Event-Structures.description"></a><h2>Description</h2>
<p>
The event structs contain data specific to each type of event in GDK.
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
A common mistake is to forget to set the event mask of a widget so that the
required events are received. See <code class="function">gtk_widget_set_events()</code>.
</p>
</div>
</div>
<div class="refsect1">
<a name="gdk-Event-Structures.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GdkEvent"></a><h3>union GdkEvent</h3>
<pre class="programlisting">union _GdkEvent
{
  GdkEventType		    type;
  GdkEventAny		    any;
  GdkEventExpose	    expose;
  GdkEventNoExpose	    no_expose;
  GdkEventVisibility	    visibility;
  GdkEventMotion	    motion;
  GdkEventButton	    button;
  GdkEventScroll            scroll;
  GdkEventKey		    key;
  GdkEventCrossing	    crossing;
  GdkEventFocus		    focus_change;
  GdkEventConfigure	    configure;
  GdkEventProperty	    property;
  GdkEventSelection	    selection;
  GdkEventOwnerChange  	    owner_change;
  GdkEventProximity	    proximity;
  GdkEventClient	    client;
  GdkEventDND               dnd;
  GdkEventWindowState       window_state;
  GdkEventSetting           setting;
  GdkEventGrabBroken        grab_broken;
};
</pre>
<p>
The <a class="link" href="gdk-Event-Structures.html#GdkEvent" title="union GdkEvent"><span class="type">GdkEvent</span></a> struct contains a union of all of the event structs,
and allows access to the data fields in a number of ways.
</p>
<p>
The event type is always the first field in all of the event structs, and
can always be accessed with the following code, no matter what type of event
it is:
</p>
<div class="informalexample"><pre class="programlisting">
  GdkEvent *event;
  GdkEventType type;
  type = event-&gt;type;
</pre></div>
<p>
</p>
<p>
To access other fields of the event structs, the pointer to the event can be
cast to the appropriate event struct pointer, or the union member name can be
used. For example if the event type is <a class="link" href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a> then the x coordinate
of the button press can be accessed with:
</p>
<div class="informalexample"><pre class="programlisting">
  GdkEvent *event;
  gdouble x;
  x = ((GdkEventButton*)event)-&gt;x;
</pre></div>
<p>
or:
</p>
<div class="informalexample"><pre class="programlisting">
  GdkEvent *event;
  gdouble x;
  x = event-&gt;button.x;
</pre></div>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventAny"></a><h3>struct GdkEventAny</h3>
<pre class="programlisting">struct GdkEventAny {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
};
</pre>
<p>
Contains the fields which are common to all event structs.
Any event pointer can safely be cast to a pointer to a <a class="link" href="gdk-Event-Structures.html#GdkEventAny" title="struct GdkEventAny"><span class="type">GdkEventAny</span></a> to access
these fields.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventAny.type"></a>type</code></em>;</span></p></td>
<td>the type of the event.</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventAny.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventAny.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventKey"></a><h3>struct GdkEventKey</h3>
<pre class="programlisting">struct GdkEventKey {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  guint state;
  guint keyval;
  gint length;
  gchar *string;
  guint16 hardware_keycode;
  guint8 group;
  guint is_modifier : 1;
};
</pre>
<p>
Describes a key press or key release event.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventKey.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-KEY-PRESS:CAPS"><code class="literal">GDK_KEY_PRESS</code></a> or <a class="link" href="gdk-Events.html#GDK-KEY-RELEASE:CAPS"><code class="literal">GDK_KEY_RELEASE</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventKey.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventKey.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GdkEventKey.time"></a>time</code></em>;</span></p></td>
<td>the time of the event in milliseconds.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GdkEventKey.state"></a>state</code></em>;</span></p></td>
<td>a bit-mask representing the state of the modifier keys (e.g. Control,
Shift and Alt) and the pointer buttons. See <a class="link" href="gdk-Windows.html#GdkModifierType" title="enum GdkModifierType"><span class="type">GdkModifierType</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GdkEventKey.keyval"></a>keyval</code></em>;</span></p></td>
<td>the key that was pressed or released. See the
<code class="filename">&lt;gdk/gdkkeysyms.h&gt;</code>
header file for a complete list of GDK key codes.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GdkEventKey.length"></a>length</code></em>;</span></p></td>
<td>the length of <em class="parameter"><code>string</code></em>.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GdkEventKey.string"></a>string</code></em>;</span></p></td>
<td>a string containing the an approximation of the text that
would result from this keypress. The only correct way to handle text
input of text is using input methods (see <span class="type">GtkIMContext</span>), so this
field is deprecated and should never be used.
(<a class="link" href="gdk-Keyboard-Handling.html#gdk-unicode-to-keyval" title="gdk_unicode_to_keyval ()"><code class="function">gdk_unicode_to_keyval()</code></a> provides a non-deprecated way of getting
an approximate translation for a key.) The string is encoded in the encoding
of the current locale (Note: this for backwards compatibility:
strings in GTK+ and GDK are typically in UTF-8.) and NUL-terminated.
In some cases, the translation of the key code will be a single
NUL byte, in which case looking at <em class="parameter"><code>length</code></em> is necessary to distinguish
it from the an empty translation.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="GdkEventKey.hardware-keycode"></a>hardware_keycode</code></em>;</span></p></td>
<td>the raw code of the key that was pressed or released.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="GdkEventKey.group"></a>group</code></em>;</span></p></td>
<td>the keyboard group.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GdkEventKey.is-modifier"></a>is_modifier</code></em> : 1;</span></p></td>
<td>a flag that indicates if <em class="parameter"><code>hardware_keycode</code></em> is mapped to a
modifier. Since 2.10</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventButton"></a><h3>struct GdkEventButton</h3>
<pre class="programlisting">struct GdkEventButton {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble *axes;
  guint state;
  guint button;
  GdkDevice *device;
  gdouble x_root, y_root;
};
</pre>
<p>
Used for button press and button release events. The
<em class="structfield"><code>type</code></em> field will be one of <a class="link" href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a>,
<a class="link" href="gdk-Events.html#GDK-2BUTTON-PRESS:CAPS"><code class="literal">GDK_2BUTTON_PRESS</code></a>, <a class="link" href="gdk-Events.html#GDK-3BUTTON-PRESS:CAPS"><code class="literal">GDK_3BUTTON_PRESS</code></a>, and <a class="link" href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a>.
</p>
<p>
Double and triple-clicks result in a sequence of events being received.
For double-clicks the order of events will be:
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem"><p><a class="link" href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a></p></li>
<li class="listitem"><p><a class="link" href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a></p></li>
<li class="listitem"><p><a class="link" href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a></p></li>
<li class="listitem"><p><a class="link" href="gdk-Events.html#GDK-2BUTTON-PRESS:CAPS"><code class="literal">GDK_2BUTTON_PRESS</code></a></p></li>
<li class="listitem"><p><a class="link" href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a></p></li>
</ol></div>
<p>
Note that the first click is received just like a normal
button press, while the second click results in a <a class="link" href="gdk-Events.html#GDK-2BUTTON-PRESS:CAPS"><code class="literal">GDK_2BUTTON_PRESS</code></a> being
received just after the <a class="link" href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a>.
</p>
<p>
Triple-clicks are very similar to double-clicks, except that <a class="link" href="gdk-Events.html#GDK-3BUTTON-PRESS:CAPS"><code class="literal">GDK_3BUTTON_PRESS</code></a>
is inserted after the third click. The order of the events is:
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem"><p><a class="link" href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a></p></li>
<li class="listitem"><p><a class="link" href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a></p></li>
<li class="listitem"><p><a class="link" href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a></p></li>
<li class="listitem"><p><a class="link" href="gdk-Events.html#GDK-2BUTTON-PRESS:CAPS"><code class="literal">GDK_2BUTTON_PRESS</code></a></p></li>
<li class="listitem"><p><a class="link" href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a></p></li>
<li class="listitem"><p><a class="link" href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a></p></li>
<li class="listitem"><p><a class="link" href="gdk-Events.html#GDK-3BUTTON-PRESS:CAPS"><code class="literal">GDK_3BUTTON_PRESS</code></a></p></li>
<li class="listitem"><p><a class="link" href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a></p></li>
</ol></div>
<p>
</p>
<p>
For a double click to occur, the second button press must occur within 1/4 of
a second of the first. For a triple click to occur, the third button press
must also occur within 1/2 second of the first button press.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventButton.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-BUTTON-PRESS:CAPS"><code class="literal">GDK_BUTTON_PRESS</code></a>, <a class="link" href="gdk-Events.html#GDK-2BUTTON-PRESS:CAPS"><code class="literal">GDK_2BUTTON_PRESS</code></a>,
<a class="link" href="gdk-Events.html#GDK-3BUTTON-PRESS:CAPS"><code class="literal">GDK_3BUTTON_PRESS</code></a> or <a class="link" href="gdk-Events.html#GDK-BUTTON-RELEASE:CAPS"><code class="literal">GDK_BUTTON_RELEASE</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventButton.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventButton.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GdkEventButton.time"></a>time</code></em>;</span></p></td>
<td>the time of the event in milliseconds.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventButton.x"></a>x</code></em>;</span></p></td>
<td>the x coordinate of the pointer relative to the window.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventButton.y"></a>y</code></em>;</span></p></td>
<td>the y coordinate of the pointer relative to the window.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *<em class="structfield"><code><a name="GdkEventButton.axes"></a>axes</code></em>;</span></p></td>
<td>
<em class="parameter"><code>x</code></em>, <em class="parameter"><code>y</code></em> translated to the axes of <em class="parameter"><code>device</code></em>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>device</code></em> is
the mouse.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GdkEventButton.state"></a>state</code></em>;</span></p></td>
<td>a bit-mask representing the state of the modifier keys (e.g. Control,
Shift and Alt) and the pointer buttons. See <a class="link" href="gdk-Windows.html#GdkModifierType" title="enum GdkModifierType"><span class="type">GdkModifierType</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GdkEventButton.button"></a>button</code></em>;</span></p></td>
<td>the button which was pressed or released, numbered from 1 to 5.
Normally button 1 is the left mouse button, 2 is the middle button,
and 3 is the right button. On 2-button mice, the middle button can often
be simulated by pressing both mouse buttons together.</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Input-Devices.html#GdkDevice" title="struct GdkDevice"><span class="type">GdkDevice</span></a> *<em class="structfield"><code><a name="GdkEventButton.device"></a>device</code></em>;</span></p></td>
<td>the device where the event originated.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventButton.x-root"></a>x_root</code></em>;</span></p></td>
<td>the x coordinate of the pointer relative to the root of the screen.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventButton.y-root"></a>y_root</code></em>;</span></p></td>
<td>the y coordinate of the pointer relative to the root of the screen.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventScroll"></a><h3>struct GdkEventScroll</h3>
<pre class="programlisting">struct GdkEventScroll {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  gdouble x;
  gdouble y;
  guint state;
  GdkScrollDirection direction;
  GdkDevice *device;
  gdouble x_root, y_root;
};
</pre>
<p>
Generated from button presses for the buttons 4 to 7. Wheel mice are
usually configured to generate button press events for buttons 4 and 5
when the wheel is turned.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventScroll.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-SCROLL:CAPS"><code class="literal">GDK_SCROLL</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventScroll.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventScroll.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GdkEventScroll.time"></a>time</code></em>;</span></p></td>
<td>the time of the event in milliseconds.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventScroll.x"></a>x</code></em>;</span></p></td>
<td>the x coordinate of the pointer relative to the window.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventScroll.y"></a>y</code></em>;</span></p></td>
<td>the y coordinate of the pointer relative to the window.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GdkEventScroll.state"></a>state</code></em>;</span></p></td>
<td>a bit-mask representing the state of the modifier keys (e.g. Control,
Shift and Alt) and the pointer buttons. See <a class="link" href="gdk-Windows.html#GdkModifierType" title="enum GdkModifierType"><span class="type">GdkModifierType</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Event-Structures.html#GdkScrollDirection" title="enum GdkScrollDirection"><span class="type">GdkScrollDirection</span></a> <em class="structfield"><code><a name="GdkEventScroll.direction"></a>direction</code></em>;</span></p></td>
<td>the direction to scroll to (one of <a class="link" href="gdk-Event-Structures.html#GDK-SCROLL-UP:CAPS"><code class="literal">GDK_SCROLL_UP</code></a>,
<a class="link" href="gdk-Event-Structures.html#GDK-SCROLL-DOWN:CAPS"><code class="literal">GDK_SCROLL_DOWN</code></a>, <a class="link" href="gdk-Event-Structures.html#GDK-SCROLL-LEFT:CAPS"><code class="literal">GDK_SCROLL_LEFT</code></a> and <a class="link" href="gdk-Event-Structures.html#GDK-SCROLL-RIGHT:CAPS"><code class="literal">GDK_SCROLL_RIGHT</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Input-Devices.html#GdkDevice" title="struct GdkDevice"><span class="type">GdkDevice</span></a> *<em class="structfield"><code><a name="GdkEventScroll.device"></a>device</code></em>;</span></p></td>
<td>the device where the event originated.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventScroll.x-root"></a>x_root</code></em>;</span></p></td>
<td>the x coordinate of the pointer relative to the root of the screen.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventScroll.y-root"></a>y_root</code></em>;</span></p></td>
<td>the y coordinate of the pointer relative to the root of the screen.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventMotion"></a><h3>struct GdkEventMotion</h3>
<pre class="programlisting">struct GdkEventMotion {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble *axes;
  guint state;
  gint16 is_hint;
  GdkDevice *device;
  gdouble x_root, y_root;
};
</pre>
<p>
Generated when the pointer moves.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventMotion.type"></a>type</code></em>;</span></p></td>
<td>the type of the event.</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventMotion.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventMotion.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GdkEventMotion.time"></a>time</code></em>;</span></p></td>
<td>the time of the event in milliseconds.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventMotion.x"></a>x</code></em>;</span></p></td>
<td>the x coordinate of the pointer relative to the window.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventMotion.y"></a>y</code></em>;</span></p></td>
<td>the y coordinate of the pointer relative to the window.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *<em class="structfield"><code><a name="GdkEventMotion.axes"></a>axes</code></em>;</span></p></td>
<td>
<em class="parameter"><code>x</code></em>, <em class="parameter"><code>y</code></em> translated to the axes of <em class="parameter"><code>device</code></em>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>device</code></em> is
the mouse.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GdkEventMotion.state"></a>state</code></em>;</span></p></td>
<td>a bit-mask representing the state of the modifier keys (e.g. Control,
Shift and Alt) and the pointer buttons. See <a class="link" href="gdk-Windows.html#GdkModifierType" title="enum GdkModifierType"><span class="type">GdkModifierType</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> <em class="structfield"><code><a name="GdkEventMotion.is-hint"></a>is_hint</code></em>;</span></p></td>
<td>set to 1 if this event is just a hint, see the <a class="link" href="gdk-Events.html#GDK-POINTER-MOTION-HINT-MASK:CAPS"><code class="literal">GDK_POINTER_MOTION_HINT_MASK</code></a>
value of <a class="link" href="gdk-Events.html#GdkEventMask" title="enum GdkEventMask"><span class="type">GdkEventMask</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Input-Devices.html#GdkDevice" title="struct GdkDevice"><span class="type">GdkDevice</span></a> *<em class="structfield"><code><a name="GdkEventMotion.device"></a>device</code></em>;</span></p></td>
<td>the device where the event originated.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventMotion.x-root"></a>x_root</code></em>;</span></p></td>
<td>the x coordinate of the pointer relative to the root of the screen.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventMotion.y-root"></a>y_root</code></em>;</span></p></td>
<td>the y coordinate of the pointer relative to the root of the screen.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventExpose"></a><h3>struct GdkEventExpose</h3>
<pre class="programlisting">struct GdkEventExpose {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkRectangle area;
  GdkRegion *region;
  gint count; /* If non-zero, how many more events follow. */
};
</pre>
<p>
Generated when all or part of a window becomes visible and needs to be
redrawn.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventExpose.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-EXPOSE:CAPS"><code class="literal">GDK_EXPOSE</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventExpose.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventExpose.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Points-Rectangles-and-Regions.html#GdkRectangle" title="struct GdkRectangle"><span class="type">GdkRectangle</span></a> <em class="structfield"><code><a name="GdkEventExpose.area"></a>area</code></em>;</span></p></td>
<td>bounding box of <em class="parameter"><code>region</code></em>.</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Points-Rectangles-and-Regions.html#GdkRegion" title="GdkRegion"><span class="type">GdkRegion</span></a> *<em class="structfield"><code><a name="GdkEventExpose.region"></a>region</code></em>;</span></p></td>
<td>the region that needs to be redrawn.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GdkEventExpose.count"></a>count</code></em>;</span></p></td>
<td>the number of contiguous <a class="link" href="gdk-Events.html#GDK-EXPOSE:CAPS"><code class="literal">GDK_EXPOSE</code></a> events following this one.
The only use for this is "exposure compression", i.e. handling all contiguous
<a class="link" href="gdk-Events.html#GDK-EXPOSE:CAPS"><code class="literal">GDK_EXPOSE</code></a> events in one go, though GDK performs some exposure compression
so this is not normally needed.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventVisibility"></a><h3>struct GdkEventVisibility</h3>
<pre class="programlisting">struct GdkEventVisibility {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkVisibilityState state;
};
</pre>
<p>
Generated when the window visibility status has changed.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventVisibility.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-VISIBILITY-NOTIFY:CAPS"><code class="literal">GDK_VISIBILITY_NOTIFY</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventVisibility.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventVisibility.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Event-Structures.html#GdkVisibilityState" title="enum GdkVisibilityState"><span class="type">GdkVisibilityState</span></a> <em class="structfield"><code><a name="GdkEventVisibility.state"></a>state</code></em>;</span></p></td>
<td>the new visibility state (<a class="link" href="gdk-Event-Structures.html#GDK-VISIBILITY-FULLY-OBSCURED:CAPS"><code class="literal">GDK_VISIBILITY_FULLY_OBSCURED</code></a>,
<a class="link" href="gdk-Event-Structures.html#GDK-VISIBILITY-PARTIAL:CAPS"><code class="literal">GDK_VISIBILITY_PARTIAL</code></a> or <a class="link" href="gdk-Event-Structures.html#GDK-VISIBILITY-UNOBSCURED:CAPS"><code class="literal">GDK_VISIBILITY_UNOBSCURED</code></a>).</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventCrossing"></a><h3>struct GdkEventCrossing</h3>
<pre class="programlisting">struct GdkEventCrossing {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkWindow *subwindow;
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble x_root;
  gdouble y_root;
  GdkCrossingMode mode;
  GdkNotifyType detail;
  gboolean focus;
  guint state;
};
</pre>
<p>
Generated when the pointer enters or leaves a window.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventCrossing.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-ENTER-NOTIFY:CAPS"><code class="literal">GDK_ENTER_NOTIFY</code></a> or <a class="link" href="gdk-Events.html#GDK-LEAVE-NOTIFY:CAPS"><code class="literal">GDK_LEAVE_NOTIFY</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventCrossing.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventCrossing.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using
<code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventCrossing.subwindow"></a>subwindow</code></em>;</span></p></td>
<td>the window that was entered or left.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GdkEventCrossing.time"></a>time</code></em>;</span></p></td>
<td>the time of the event in milliseconds.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventCrossing.x"></a>x</code></em>;</span></p></td>
<td>the x coordinate of the pointer relative to the window.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventCrossing.y"></a>y</code></em>;</span></p></td>
<td>the y coordinate of the pointer relative to the window.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventCrossing.x-root"></a>x_root</code></em>;</span></p></td>
<td>the x coordinate of the pointer relative to the root of the screen.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GdkEventCrossing.y-root"></a>y_root</code></em>;</span></p></td>
<td>the y coordinate of the pointer relative to the root of the screen.</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Event-Structures.html#GdkCrossingMode" title="enum GdkCrossingMode"><span class="type">GdkCrossingMode</span></a> <em class="structfield"><code><a name="GdkEventCrossing.mode"></a>mode</code></em>;</span></p></td>
<td>the crossing mode (<a class="link" href="gdk-Event-Structures.html#GDK-CROSSING-NORMAL:CAPS"><code class="literal">GDK_CROSSING_NORMAL</code></a>, <a class="link" href="gdk-Event-Structures.html#GDK-CROSSING-GRAB:CAPS"><code class="literal">GDK_CROSSING_GRAB</code></a>,
<a class="link" href="gdk-Event-Structures.html#GDK-CROSSING-UNGRAB:CAPS"><code class="literal">GDK_CROSSING_UNGRAB</code></a>, <a class="link" href="gdk-Event-Structures.html#GDK-CROSSING-GTK-GRAB:CAPS"><code class="literal">GDK_CROSSING_GTK_GRAB</code></a>, <a class="link" href="gdk-Event-Structures.html#GDK-CROSSING-GTK-UNGRAB:CAPS"><code class="literal">GDK_CROSSING_GTK_UNGRAB</code></a> or
<a class="link" href="gdk-Event-Structures.html#GDK-CROSSING-STATE-CHANGED:CAPS"><code class="literal">GDK_CROSSING_STATE_CHANGED</code></a>).  <a class="link" href="gdk-Event-Structures.html#GDK-CROSSING-GTK-GRAB:CAPS"><code class="literal">GDK_CROSSING_GTK_GRAB</code></a>, <a class="link" href="gdk-Event-Structures.html#GDK-CROSSING-GTK-UNGRAB:CAPS"><code class="literal">GDK_CROSSING_GTK_UNGRAB</code></a>,
and <a class="link" href="gdk-Event-Structures.html#GDK-CROSSING-STATE-CHANGED:CAPS"><code class="literal">GDK_CROSSING_STATE_CHANGED</code></a> were added in 2.14 and are always synthesized,
never native.</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Event-Structures.html#GdkNotifyType" title="enum GdkNotifyType"><span class="type">GdkNotifyType</span></a> <em class="structfield"><code><a name="GdkEventCrossing.detail"></a>detail</code></em>;</span></p></td>
<td>the kind of crossing that happened (<a class="link" href="gdk-Event-Structures.html#GDK-NOTIFY-INFERIOR:CAPS"><code class="literal">GDK_NOTIFY_INFERIOR</code></a>,
<a class="link" href="gdk-Event-Structures.html#GDK-NOTIFY-ANCESTOR:CAPS"><code class="literal">GDK_NOTIFY_ANCESTOR</code></a>, <a class="link" href="gdk-Event-Structures.html#GDK-NOTIFY-VIRTUAL:CAPS"><code class="literal">GDK_NOTIFY_VIRTUAL</code></a>, <a class="link" href="gdk-Event-Structures.html#GDK-NOTIFY-NONLINEAR:CAPS"><code class="literal">GDK_NOTIFY_NONLINEAR</code></a> or
<a class="link" href="gdk-Event-Structures.html#GDK-NOTIFY-NONLINEAR-VIRTUAL:CAPS"><code class="literal">GDK_NOTIFY_NONLINEAR_VIRTUAL</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GdkEventCrossing.focus"></a>focus</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>window</code></em> is the focus window or an inferior.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GdkEventCrossing.state"></a>state</code></em>;</span></p></td>
<td>a bit-mask representing the state of the modifier keys (e.g. Control,
Shift and Alt) and the pointer buttons. See <a class="link" href="gdk-Windows.html#GdkModifierType" title="enum GdkModifierType"><span class="type">GdkModifierType</span></a>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventFocus"></a><h3>struct GdkEventFocus</h3>
<pre class="programlisting">struct GdkEventFocus {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  gint16 in;
};
</pre>
<p>
Describes a change of keyboard focus.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventFocus.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-FOCUS-CHANGE:CAPS"><code class="literal">GDK_FOCUS_CHANGE</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventFocus.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventFocus.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> <em class="structfield"><code><a name="GdkEventFocus.in"></a>in</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the window has gained the keyboard focus, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it has lost
the focus.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventConfigure"></a><h3>struct GdkEventConfigure</h3>
<pre class="programlisting">struct GdkEventConfigure {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  gint x, y;
  gint width;
  gint height;
};
</pre>
<p>
Generated when a window size or position has changed.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventConfigure.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-CONFIGURE:CAPS"><code class="literal">GDK_CONFIGURE</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventConfigure.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventConfigure.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GdkEventConfigure.x"></a>x</code></em>;</span></p></td>
<td>the new x coordinate of the window, relative to its parent.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GdkEventConfigure.y"></a>y</code></em>;</span></p></td>
<td>the new y coordinate of the window, relative to its parent.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GdkEventConfigure.width"></a>width</code></em>;</span></p></td>
<td>the new width of the window.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GdkEventConfigure.height"></a>height</code></em>;</span></p></td>
<td>the new height of the window.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventProperty"></a><h3>struct GdkEventProperty</h3>
<pre class="programlisting">struct GdkEventProperty {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkAtom atom;
  guint32 time;
  guint state;
};
</pre>
<p>
Describes a property change on a window.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventProperty.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-PROPERTY-NOTIFY:CAPS"><code class="literal">GDK_PROPERTY_NOTIFY</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventProperty.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventProperty.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Properties-and-Atoms.html#GdkAtom" title="GdkAtom"><span class="type">GdkAtom</span></a> <em class="structfield"><code><a name="GdkEventProperty.atom"></a>atom</code></em>;</span></p></td>
<td>the property that was changed.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GdkEventProperty.time"></a>time</code></em>;</span></p></td>
<td>the time of the event in milliseconds.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GdkEventProperty.state"></a>state</code></em>;</span></p></td>
<td>whether the property was changed (<a class="link" href="gdk-Event-Structures.html#GDK-PROPERTY-NEW-VALUE:CAPS"><code class="literal">GDK_PROPERTY_NEW_VALUE</code></a>) or
deleted (<a class="link" href="gdk-Event-Structures.html#GDK-PROPERTY-DELETE:CAPS"><code class="literal">GDK_PROPERTY_DELETE</code></a>).</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventSelection"></a><h3>struct GdkEventSelection</h3>
<pre class="programlisting">struct GdkEventSelection {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkAtom selection;
  GdkAtom target;
  GdkAtom property;
  guint32 time;
  GdkNativeWindow requestor;
};
</pre>
<p>
Generated when a selection is requested or ownership of a selection
is taken over by another client application.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventSelection.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-SELECTION-CLEAR:CAPS"><code class="literal">GDK_SELECTION_CLEAR</code></a>, <a class="link" href="gdk-Events.html#GDK-SELECTION-NOTIFY:CAPS"><code class="literal">GDK_SELECTION_NOTIFY</code></a> or
<a class="link" href="gdk-Events.html#GDK-SELECTION-REQUEST:CAPS"><code class="literal">GDK_SELECTION_REQUEST</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventSelection.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventSelection.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Properties-and-Atoms.html#GdkAtom" title="GdkAtom"><span class="type">GdkAtom</span></a> <em class="structfield"><code><a name="GdkEventSelection.selection"></a>selection</code></em>;</span></p></td>
<td>the selection.</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Properties-and-Atoms.html#GdkAtom" title="GdkAtom"><span class="type">GdkAtom</span></a> <em class="structfield"><code><a name="GdkEventSelection.target"></a>target</code></em>;</span></p></td>
<td>the target to which the selection should be converted.</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Properties-and-Atoms.html#GdkAtom" title="GdkAtom"><span class="type">GdkAtom</span></a> <em class="structfield"><code><a name="GdkEventSelection.property"></a>property</code></em>;</span></p></td>
<td>the property in which to place the result of the conversion.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GdkEventSelection.time"></a>time</code></em>;</span></p></td>
<td>the time of the event in milliseconds.</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Event-Structures.html#GdkNativeWindow" title="GdkNativeWindow"><span class="type">GdkNativeWindow</span></a> <em class="structfield"><code><a name="GdkEventSelection.requestor"></a>requestor</code></em>;</span></p></td>
<td>the native window on which to place <em class="parameter"><code>property</code></em>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkNativeWindow"></a><h3>GdkNativeWindow</h3>
<pre class="programlisting">typedef gpointer GdkNativeWindow;
</pre>
<p>
Used to represent native windows (<span class="type">Window</span>s for the X11 backend,
<span class="type">HWND</span>s for Win32).
</p>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventDND"></a><h3>struct GdkEventDND</h3>
<pre class="programlisting">struct GdkEventDND {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkDragContext *context;

  guint32 time;
  gshort x_root, y_root;
};
</pre>
<p>
Generated during DND operations.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventDND.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-DRAG-ENTER:CAPS"><code class="literal">GDK_DRAG_ENTER</code></a>, <a class="link" href="gdk-Events.html#GDK-DRAG-LEAVE:CAPS"><code class="literal">GDK_DRAG_LEAVE</code></a>,
<a class="link" href="gdk-Events.html#GDK-DRAG-MOTION:CAPS"><code class="literal">GDK_DRAG_MOTION</code></a>, <a class="link" href="gdk-Events.html#GDK-DRAG-STATUS:CAPS"><code class="literal">GDK_DRAG_STATUS</code></a>, <a class="link" href="gdk-Events.html#GDK-DROP-START:CAPS"><code class="literal">GDK_DROP_START</code></a> or <a class="link" href="gdk-Events.html#GDK-DROP-FINISHED:CAPS"><code class="literal">GDK_DROP_FINISHED</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventDND.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventDND.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Drag-and-Drop.html#GdkDragContext" title="struct GdkDragContext"><span class="type">GdkDragContext</span></a> *<em class="structfield"><code><a name="GdkEventDND.context"></a>context</code></em>;</span></p></td>
<td>the <a class="link" href="gdk-Drag-and-Drop.html#GdkDragContext" title="struct GdkDragContext"><span class="type">GdkDragContext</span></a> for the current DND operation.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GdkEventDND.time"></a>time</code></em>;</span></p></td>
<td>the time of the event in milliseconds.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gshort"><span class="type">gshort</span></a> <em class="structfield"><code><a name="GdkEventDND.x-root"></a>x_root</code></em>;</span></p></td>
<td>the x coordinate of the pointer relative to the root of the screen,
only set for <a class="link" href="gdk-Events.html#GDK-DRAG-MOTION:CAPS"><code class="literal">GDK_DRAG_MOTION</code></a> and <a class="link" href="gdk-Events.html#GDK-DROP-START:CAPS"><code class="literal">GDK_DROP_START</code></a>.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gshort"><span class="type">gshort</span></a> <em class="structfield"><code><a name="GdkEventDND.y-root"></a>y_root</code></em>;</span></p></td>
<td>the y coordinate of the pointer relative to the root of the screen,
only set for <a class="link" href="gdk-Events.html#GDK-DRAG-MOTION:CAPS"><code class="literal">GDK_DRAG_MOTION</code></a> and <a class="link" href="gdk-Events.html#GDK-DROP-START:CAPS"><code class="literal">GDK_DROP_START</code></a>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventProximity"></a><h3>struct GdkEventProximity</h3>
<pre class="programlisting">struct GdkEventProximity {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  GdkDevice *device;
};
</pre>
<p>
Proximity events are generated when using GDK's wrapper for the
XInput extension. The XInput extension is an add-on for standard X
that allows you to use nonstandard devices such as graphics tablets.
A proximity event indicates that the stylus has moved in or out of
contact with the tablet, or perhaps that the user's finger has moved
in or out of contact with a touch screen.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventProximity.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-PROXIMITY-IN:CAPS"><code class="literal">GDK_PROXIMITY_IN</code></a> or <a class="link" href="gdk-Events.html#GDK-PROXIMITY-OUT:CAPS"><code class="literal">GDK_PROXIMITY_OUT</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventProximity.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventProximity.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GdkEventProximity.time"></a>time</code></em>;</span></p></td>
<td>the time of the event in milliseconds.</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Input-Devices.html#GdkDevice" title="struct GdkDevice"><span class="type">GdkDevice</span></a> *<em class="structfield"><code><a name="GdkEventProximity.device"></a>device</code></em>;</span></p></td>
<td>the device where the event originated.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventClient"></a><h3>struct GdkEventClient</h3>
<pre class="programlisting">struct GdkEventClient {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkAtom message_type;
  gushort data_format;
  union {
    char b[20];
    short s[10];
    long l[5];
  } data;
};
</pre>
<p>
An event sent by another client application.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventClient.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-CLIENT-EVENT:CAPS"><code class="literal">GDK_CLIENT_EVENT</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventClient.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventClient.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Properties-and-Atoms.html#GdkAtom" title="GdkAtom"><span class="type">GdkAtom</span></a> <em class="structfield"><code><a name="GdkEventClient.message-type"></a>message_type</code></em>;</span></p></td>
<td>the type of the message, which can be defined by the
application.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gushort"><span class="type">gushort</span></a> <em class="structfield"><code><a name="GdkEventClient.data-format"></a>data_format</code></em>;</span></p></td>
<td>the format of the data, given as the number of bits in each
data element, i.e. 8, 16, or 32. 8-bit data uses the b array of the data
union, 16-bit data uses the s array, and 32-bit data uses the l array.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventNoExpose"></a><h3>struct GdkEventNoExpose</h3>
<pre class="programlisting">struct GdkEventNoExpose {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
};
</pre>
<p>
Generated when the area of a <a class="link" href="gdk-Drawing-Primitives.html#GdkDrawable"><span class="type">GdkDrawable</span></a> being copied, with <a class="link" href="gdk-Drawing-Primitives.html#gdk-draw-drawable" title="gdk_draw_drawable ()"><code class="function">gdk_draw_drawable()</code></a>
or <a class="link" href="gdk-Windows.html#gdk-window-copy-area" title="gdk_window_copy_area()"><code class="function">gdk_window_copy_area()</code></a>, was completely available.
</p>
<p>
FIXME: add more here.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventNoExpose.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-NO-EXPOSE:CAPS"><code class="literal">GDK_NO_EXPOSE</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventNoExpose.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventNoExpose.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventWindowState"></a><h3>struct GdkEventWindowState</h3>
<pre class="programlisting">struct GdkEventWindowState {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkWindowState changed_mask;
  GdkWindowState new_window_state;
};
</pre>
<p>
Generated when the state of a toplevel window changes.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventWindowState.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-WINDOW-STATE:CAPS"><code class="literal">GDK_WINDOW_STATE</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventWindowState.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventWindowState.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Event-Structures.html#GdkWindowState" title="enum GdkWindowState"><span class="type">GdkWindowState</span></a> <em class="structfield"><code><a name="GdkEventWindowState.changed-mask"></a>changed_mask</code></em>;</span></p></td>
<td>mask specifying what flags have changed.</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Event-Structures.html#GdkWindowState" title="enum GdkWindowState"><span class="type">GdkWindowState</span></a> <em class="structfield"><code><a name="GdkEventWindowState.new-window-state"></a>new_window_state</code></em>;</span></p></td>
<td>the new window state, a combination of <a class="link" href="gdk-Event-Structures.html#GdkWindowState" title="enum GdkWindowState"><span class="type">GdkWindowState</span></a> bits.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventSetting"></a><h3>struct GdkEventSetting</h3>
<pre class="programlisting">struct GdkEventSetting {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkSettingAction action;
  char *name;
};
</pre>
<p>
Generated when a setting is modified.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventSetting.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-SETTING:CAPS"><code class="literal">GDK_SETTING</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventSetting.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event.</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventSetting.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Event-Structures.html#GdkSettingAction" title="enum GdkSettingAction"><span class="type">GdkSettingAction</span></a> <em class="structfield"><code><a name="GdkEventSetting.action"></a>action</code></em>;</span></p></td>
<td>what happened to the setting (<a class="link" href="gdk-Event-Structures.html#GDK-SETTING-ACTION-NEW:CAPS"><code class="literal">GDK_SETTING_ACTION_NEW</code></a>,
<a class="link" href="gdk-Event-Structures.html#GDK-SETTING-ACTION-CHANGED:CAPS"><code class="literal">GDK_SETTING_ACTION_CHANGED</code></a> or <a class="link" href="gdk-Event-Structures.html#GDK-SETTING-ACTION-DELETED:CAPS"><code class="literal">GDK_SETTING_ACTION_DELETED</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><span class="type">char</span> *<em class="structfield"><code><a name="GdkEventSetting.name"></a>name</code></em>;</span></p></td>
<td>the name of the setting.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventOwnerChange"></a><h3>struct GdkEventOwnerChange</h3>
<pre class="programlisting">struct GdkEventOwnerChange {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkNativeWindow owner;
  GdkOwnerChange reason;
  GdkAtom selection;
  guint32 time;
  guint32 selection_time;
};
</pre>
<p>
Generated when the owner of a selection changes. On X11, this information is
only available if the X server supports the XFIXES extension.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventOwnerChange.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-OWNER-CHANGE:CAPS"><code class="literal">GDK_OWNER_CHANGE</code></a>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventOwnerChange.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventOwnerChange.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Event-Structures.html#GdkNativeWindow" title="GdkNativeWindow"><span class="type">GdkNativeWindow</span></a> <em class="structfield"><code><a name="GdkEventOwnerChange.owner"></a>owner</code></em>;</span></p></td>
<td>the new owner of the selection</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Event-Structures.html#GdkOwnerChange" title="enum GdkOwnerChange"><span class="type">GdkOwnerChange</span></a> <em class="structfield"><code><a name="GdkEventOwnerChange.reason"></a>reason</code></em>;</span></p></td>
<td>the reason for the ownership change as a <a class="link" href="gdk-Event-Structures.html#GdkOwnerChange" title="enum GdkOwnerChange"><span class="type">GdkOwnerChange</span></a> value</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Properties-and-Atoms.html#GdkAtom" title="GdkAtom"><span class="type">GdkAtom</span></a> <em class="structfield"><code><a name="GdkEventOwnerChange.selection"></a>selection</code></em>;</span></p></td>
<td>the atom identifying the selection</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GdkEventOwnerChange.time"></a>time</code></em>;</span></p></td>
<td>the timestamp of the event</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GdkEventOwnerChange.selection-time"></a>selection_time</code></em>;</span></p></td>
<td>the time at which the selection ownership was taken over</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.6</p>
</div>
<hr>
<div class="refsect2">
<a name="GdkEventGrabBroken"></a><h3>struct GdkEventGrabBroken</h3>
<pre class="programlisting">struct GdkEventGrabBroken {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  gboolean keyboard;
  gboolean implicit;
  GdkWindow *grab_window;
};
</pre>
<p>
Generated when a pointer or keyboard grab is broken. On X11, this happens
when the grab window becomes unviewable (i.e. it or one of its ancestors
is unmapped), or if the same application grabs the pointer or keyboard
again. Note that implicit grabs (which are initiated by button presses)
can also cause <a class="link" href="gdk-Event-Structures.html#GdkEventGrabBroken" title="struct GdkEventGrabBroken"><span class="type">GdkEventGrabBroken</span></a> events.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Events.html#GdkEventType" title="enum GdkEventType"><span class="type">GdkEventType</span></a> <em class="structfield"><code><a name="GdkEventGrabBroken.type"></a>type</code></em>;</span></p></td>
<td>the type of the event (<a class="link" href="gdk-Events.html#GDK-GRAB-BROKEN:CAPS"><code class="literal">GDK_GRAB_BROKEN</code></a>)</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventGrabBroken.window"></a>window</code></em>;</span></p></td>
<td>the window which received the event, i.e. the window
that previously owned the grab</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> <em class="structfield"><code><a name="GdkEventGrabBroken.send-event"></a>send_event</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event was sent explicitly (e.g. using <code class="function">XSendEvent</code>).</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GdkEventGrabBroken.keyboard"></a>keyboard</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a keyboard grab was broken, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if a pointer
grab was broken</td>
</tr>
<tr>
<td><p><span class="term"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GdkEventGrabBroken.implicit"></a>implicit</code></em>;</span></p></td>
<td>
<a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the broken grab was implicit</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="gdk-Windows.html#GdkWindow"><span class="type">GdkWindow</span></a> *<em class="structfield"><code><a name="GdkEventGrabBroken.grab-window"></a>grab_window</code></em>;</span></p></td>
<td>If this event is caused by another grab in the same
application, <em class="parameter"><code>grab_window</code></em> contains the new grab window. Otherwise
<em class="parameter"><code>grab_window</code></em> is <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.8</p>
</div>
<hr>
<div class="refsect2">
<a name="GdkScrollDirection"></a><h3>enum GdkScrollDirection</h3>
<pre class="programlisting">typedef enum
{
  GDK_SCROLL_UP,
  GDK_SCROLL_DOWN,
  GDK_SCROLL_LEFT,
  GDK_SCROLL_RIGHT
} GdkScrollDirection;
</pre>
<p>
Specifies the direction for <a class="link" href="gdk-Event-Structures.html#GdkEventScroll" title="struct GdkEventScroll"><span class="type">GdkEventScroll</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GDK-SCROLL-UP:CAPS"></a><span class="term"><code class="literal">GDK_SCROLL_UP</code></span></p></td>
<td>the window is scrolled up.
</td>
</tr>
<tr>
<td><p><a name="GDK-SCROLL-DOWN:CAPS"></a><span class="term"><code class="literal">GDK_SCROLL_DOWN</code></span></p></td>
<td>the window is scrolled down.
</td>
</tr>
<tr>
<td><p><a name="GDK-SCROLL-LEFT:CAPS"></a><span class="term"><code class="literal">GDK_SCROLL_LEFT</code></span></p></td>
<td>the window is scrolled to the left.
</td>
</tr>
<tr>
<td><p><a name="GDK-SCROLL-RIGHT:CAPS"></a><span class="term"><code class="literal">GDK_SCROLL_RIGHT</code></span></p></td>
<td>the window is scrolled to the right.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkVisibilityState"></a><h3>enum GdkVisibilityState</h3>
<pre class="programlisting">typedef enum
{
  GDK_VISIBILITY_UNOBSCURED,
  GDK_VISIBILITY_PARTIAL,
  GDK_VISIBILITY_FULLY_OBSCURED
} GdkVisibilityState;
</pre>
<p>
Specifies the visiblity status of a window for a <a class="link" href="gdk-Event-Structures.html#GdkEventVisibility" title="struct GdkEventVisibility"><span class="type">GdkEventVisibility</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GDK-VISIBILITY-UNOBSCURED:CAPS"></a><span class="term"><code class="literal">GDK_VISIBILITY_UNOBSCURED</code></span></p></td>
<td>the window is completely visible.
</td>
</tr>
<tr>
<td><p><a name="GDK-VISIBILITY-PARTIAL:CAPS"></a><span class="term"><code class="literal">GDK_VISIBILITY_PARTIAL</code></span></p></td>
<td>the window is partially visible.
</td>
</tr>
<tr>
<td><p><a name="GDK-VISIBILITY-FULLY-OBSCURED:CAPS"></a><span class="term"><code class="literal">GDK_VISIBILITY_FULLY_OBSCURED</code></span></p></td>
<td>the window is not visible at all.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkCrossingMode"></a><h3>enum GdkCrossingMode</h3>
<pre class="programlisting">typedef enum
{
  GDK_CROSSING_NORMAL,
  GDK_CROSSING_GRAB,
  GDK_CROSSING_UNGRAB,
  GDK_CROSSING_GTK_GRAB,
  GDK_CROSSING_GTK_UNGRAB,
  GDK_CROSSING_STATE_CHANGED
} GdkCrossingMode;
</pre>
<p>
Specifies the crossing mode for <a class="link" href="gdk-Event-Structures.html#GdkEventCrossing" title="struct GdkEventCrossing"><span class="type">GdkEventCrossing</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GDK-CROSSING-NORMAL:CAPS"></a><span class="term"><code class="literal">GDK_CROSSING_NORMAL</code></span></p></td>
<td>crossing because of pointer motion.
</td>
</tr>
<tr>
<td><p><a name="GDK-CROSSING-GRAB:CAPS"></a><span class="term"><code class="literal">GDK_CROSSING_GRAB</code></span></p></td>
<td>crossing because a grab is activated.
</td>
</tr>
<tr>
<td><p><a name="GDK-CROSSING-UNGRAB:CAPS"></a><span class="term"><code class="literal">GDK_CROSSING_UNGRAB</code></span></p></td>
<td>crossing because a grab is deactivated.
</td>
</tr>
<tr>
<td><p><a name="GDK-CROSSING-GTK-GRAB:CAPS"></a><span class="term"><code class="literal">GDK_CROSSING_GTK_GRAB</code></span></p></td>
<td>crossing because a GTK+ grab is activated.
</td>
</tr>
<tr>
<td><p><a name="GDK-CROSSING-GTK-UNGRAB:CAPS"></a><span class="term"><code class="literal">GDK_CROSSING_GTK_UNGRAB</code></span></p></td>
<td>crossing because a GTK+ grab is deactivated.
</td>
</tr>
<tr>
<td><p><a name="GDK-CROSSING-STATE-CHANGED:CAPS"></a><span class="term"><code class="literal">GDK_CROSSING_STATE_CHANGED</code></span></p></td>
<td>crossing because a GTK+ widget changed state (e.g.
   sensitivity).
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkNotifyType"></a><h3>enum GdkNotifyType</h3>
<pre class="programlisting">typedef enum
{
  GDK_NOTIFY_ANCESTOR		= 0,
  GDK_NOTIFY_VIRTUAL		= 1,
  GDK_NOTIFY_INFERIOR		= 2,
  GDK_NOTIFY_NONLINEAR		= 3,
  GDK_NOTIFY_NONLINEAR_VIRTUAL = 4,
  GDK_NOTIFY_UNKNOWN		= 5
} GdkNotifyType;
</pre>
<p>
Specifies the kind of crossing for <a class="link" href="gdk-Event-Structures.html#GdkEventCrossing" title="struct GdkEventCrossing"><span class="type">GdkEventCrossing</span></a>.
</p>
<p>
See the X11 protocol specification of <span class="type">LeaveNotify</span> for
full details of crossing event generation.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GDK-NOTIFY-ANCESTOR:CAPS"></a><span class="term"><code class="literal">GDK_NOTIFY_ANCESTOR</code></span></p></td>
<td>the window is entered from an ancestor or 
   left towards an ancestor.
</td>
</tr>
<tr>
<td><p><a name="GDK-NOTIFY-VIRTUAL:CAPS"></a><span class="term"><code class="literal">GDK_NOTIFY_VIRTUAL</code></span></p></td>
<td>the pointer moves between an ancestor and an 
    inferior of the window.
</td>
</tr>
<tr>
<td><p><a name="GDK-NOTIFY-INFERIOR:CAPS"></a><span class="term"><code class="literal">GDK_NOTIFY_INFERIOR</code></span></p></td>
<td>the window is entered from an inferior or 
   left towards an inferior.
</td>
</tr>
<tr>
<td><p><a name="GDK-NOTIFY-NONLINEAR:CAPS"></a><span class="term"><code class="literal">GDK_NOTIFY_NONLINEAR</code></span></p></td>
<td> the window is entered from or left towards 
   a window which is neither an ancestor nor an inferior.
</td>
</tr>
<tr>
<td><p><a name="GDK-NOTIFY-NONLINEAR-VIRTUAL:CAPS"></a><span class="term"><code class="literal">GDK_NOTIFY_NONLINEAR_VIRTUAL</code></span></p></td>
<td>the pointer moves between two windows 
   which are not ancestors of each other and the window is part of
   the ancestor chain between one of these windows and their least
   common ancestor.
</td>
</tr>
<tr>
<td><p><a name="GDK-NOTIFY-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GDK_NOTIFY_UNKNOWN</code></span></p></td>
<td>an unknown type of enter/leave event occurred.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkPropertyState"></a><h3>enum GdkPropertyState</h3>
<pre class="programlisting">typedef enum
{
  GDK_PROPERTY_NEW_VALUE,
  GDK_PROPERTY_DELETE
} GdkPropertyState;
</pre>
<p>
Specifies the type of a property change for a <a class="link" href="gdk-Event-Structures.html#GdkEventProperty" title="struct GdkEventProperty"><span class="type">GdkEventProperty</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GDK-PROPERTY-NEW-VALUE:CAPS"></a><span class="term"><code class="literal">GDK_PROPERTY_NEW_VALUE</code></span></p></td>
<td>the property value was changed.
</td>
</tr>
<tr>
<td><p><a name="GDK-PROPERTY-DELETE:CAPS"></a><span class="term"><code class="literal">GDK_PROPERTY_DELETE</code></span></p></td>
<td>the property was deleted.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkWindowState"></a><h3>enum GdkWindowState</h3>
<pre class="programlisting">typedef enum
{
  GDK_WINDOW_STATE_WITHDRAWN  = 1 &lt;&lt; 0,
  GDK_WINDOW_STATE_ICONIFIED  = 1 &lt;&lt; 1,
  GDK_WINDOW_STATE_MAXIMIZED  = 1 &lt;&lt; 2,
  GDK_WINDOW_STATE_STICKY     = 1 &lt;&lt; 3,
  GDK_WINDOW_STATE_FULLSCREEN = 1 &lt;&lt; 4,
  GDK_WINDOW_STATE_ABOVE      = 1 &lt;&lt; 5,
  GDK_WINDOW_STATE_BELOW      = 1 &lt;&lt; 6
} GdkWindowState;
</pre>
<p>
Specifies the state of a toplevel window.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GDK-WINDOW-STATE-WITHDRAWN:CAPS"></a><span class="term"><code class="literal">GDK_WINDOW_STATE_WITHDRAWN</code></span></p></td>
<td>the window is not shown.
</td>
</tr>
<tr>
<td><p><a name="GDK-WINDOW-STATE-ICONIFIED:CAPS"></a><span class="term"><code class="literal">GDK_WINDOW_STATE_ICONIFIED</code></span></p></td>
<td>the window is minimized.
</td>
</tr>
<tr>
<td><p><a name="GDK-WINDOW-STATE-MAXIMIZED:CAPS"></a><span class="term"><code class="literal">GDK_WINDOW_STATE_MAXIMIZED</code></span></p></td>
<td>the window is maximized.
</td>
</tr>
<tr>
<td><p><a name="GDK-WINDOW-STATE-STICKY:CAPS"></a><span class="term"><code class="literal">GDK_WINDOW_STATE_STICKY</code></span></p></td>
<td>the window is sticky.
</td>
</tr>
<tr>
<td><p><a name="GDK-WINDOW-STATE-FULLSCREEN:CAPS"></a><span class="term"><code class="literal">GDK_WINDOW_STATE_FULLSCREEN</code></span></p></td>
<td>the window is maximized without decorations.
</td>
</tr>
<tr>
<td><p><a name="GDK-WINDOW-STATE-ABOVE:CAPS"></a><span class="term"><code class="literal">GDK_WINDOW_STATE_ABOVE</code></span></p></td>
<td>the window is kept above other windows.
</td>
</tr>
<tr>
<td><p><a name="GDK-WINDOW-STATE-BELOW:CAPS"></a><span class="term"><code class="literal">GDK_WINDOW_STATE_BELOW</code></span></p></td>
<td>the window is kept below other windows.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkSettingAction"></a><h3>enum GdkSettingAction</h3>
<pre class="programlisting">typedef enum
{
  GDK_SETTING_ACTION_NEW,
  GDK_SETTING_ACTION_CHANGED,
  GDK_SETTING_ACTION_DELETED
} GdkSettingAction;
</pre>
<p>
Specifies the kind of modification applied to a setting in a <a class="link" href="gdk-Event-Structures.html#GdkEventSetting" title="struct GdkEventSetting"><span class="type">GdkEventSetting</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GDK-SETTING-ACTION-NEW:CAPS"></a><span class="term"><code class="literal">GDK_SETTING_ACTION_NEW</code></span></p></td>
<td>a setting was added.
</td>
</tr>
<tr>
<td><p><a name="GDK-SETTING-ACTION-CHANGED:CAPS"></a><span class="term"><code class="literal">GDK_SETTING_ACTION_CHANGED</code></span></p></td>
<td>a setting was changed.
</td>
</tr>
<tr>
<td><p><a name="GDK-SETTING-ACTION-DELETED:CAPS"></a><span class="term"><code class="literal">GDK_SETTING_ACTION_DELETED</code></span></p></td>
<td>a setting was deleted.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GdkOwnerChange"></a><h3>enum GdkOwnerChange</h3>
<pre class="programlisting">typedef enum
{
  GDK_OWNER_CHANGE_NEW_OWNER,
  GDK_OWNER_CHANGE_DESTROY,
  GDK_OWNER_CHANGE_CLOSE
} GdkOwnerChange;
</pre>
<p>
Specifies why a selection ownership was changed.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GDK-OWNER-CHANGE-NEW-OWNER:CAPS"></a><span class="term"><code class="literal">GDK_OWNER_CHANGE_NEW_OWNER</code></span></p></td>
<td>some other app claimed the ownership
</td>
</tr>
<tr>
<td><p><a name="GDK-OWNER-CHANGE-DESTROY:CAPS"></a><span class="term"><code class="literal">GDK_OWNER_CHANGE_DESTROY</code></span></p></td>
<td>the window was destroyed
</td>
</tr>
<tr>
<td><p><a name="GDK-OWNER-CHANGE-CLOSE:CAPS"></a><span class="term"><code class="literal">GDK_OWNER_CHANGE_CLOSE</code></span></p></td>
<td>the client was closed
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.17</div>
</body>
</html>